Appendix
On a host server, the Web Deploy tool must be present to be able to install Axiell Collections. If it is not present, it can be installed as follows:
- Open the Server Manager on the server where Axiell Collections is to be installed.
- Click the Local Server option in the left column.
- In the Properties box, check the IE Enhanced Security Configuration setting.
If it is set to On, click the underlined On to open Internet Explorer enhanced security configuration and set either Administrators (if you are the administrator) or Users (if you are a different user) to Off. This will give you administrator installation rights on the server:
- Open IIS, and in the tree view on the left, select the server level node.
- In the Action column on the right, click the Get new web platform components option:
- Type Web deploy in the search box in the right upper corner of the Web platform installer and press ENTER.
- Add both the Web deployment tool 2.1 and Web deploy 3.6 and click Install:
- Close and restart IIS and the Deploy option should now be available in the right-click pop-up menu for an application:
From Collections 1.7.19249.1, executed adapls that were compiled in debug mode leave a log file with an execution trace in the \adapls
folder for post-execution debugging. This is the preferred way to debug any adapl executed by Axiell Collections.
All that is required is that the relevant adapl has been compiled in debug mode, either in Axiell Designer or from a DOS command line. Once the adapl has been executed (e.g. after storage or after the relevant task has been executed), an XML with the logged data will have been created in the \adapls
folder (the folder holding the .bin
file of the adapl actually) of the application. The name of this file is a concatenation of the adapl file name (including extension, e.g. thesaustor.bin), the translated execution code of the adapl (taken from the &1
reserved variable, e.g. BeforeEdit) and the date and time of execution (e.g. 2019_09_09__11_38_44
).
The file can be opened in any text editor (Notepad++ for example) or Visual Studio. For each executed line of code (commented out lines and empty lines are skipped) the XML file contains a <snapshot> node with all data that could possibly be relevant to debugging:
- the current line number (which has not yet been executed) and the associated line of code;
- the content of the currently processed record (in the adlib_lite FACS buffer) and the contents of all other currently opened FACS records, before the current line of code was executed;
- per field, its field tag, the occurrence number, any data language and the data itself: note that some characters in the data might have been XML escaped, e.g.
>
for the>
character; - a list of reserved variables (e.g.
&1
,&I
,&E
etc.) and their values, before the current line of code was executed. For example&E
, occurrence 1 with dataNoError
would equal&E = 0
. - a list of declared variables (text, integer and numeric types) and their values, before the current line of code was executed.
The log file can become quite large, so we recommend making sure that the adapl is executed for just one or two records only. That is usually enough for debugging. A good way to use the file is to search on the line number where you expect things might go wrong. Or search repeatedly on a tag or variable name to find out in which line of code it changes to an unexpected value.
The execution trace is not perfect however: normally, with multiple consecutive assignments, the assigned values appear in the log only with a delay of one or more lines of code. The only way to prevent that from happening is to end each line of code (at least the lines that you’d like to examine) with a semi-colon.
SDI (Selective Dissemination of Information) is an automated way to keep users or customers up-to-date with the latest acquisitions, or to send reminders, information about reservations or other current data, via email or print. A (Windows task-scheduled) SDI server (Axiell sdi.exe
) re-runs scheduled saved searches (as created in Axiell Collections) at specified intervals and usually emails the resulting data (nicely laid out by means of an XSLT style sheet) to email addresses listed in the relevant scheduled saved searches.
In your Collections application a user creates a scheduled saved search, really just a saved search based with extra properties specific to SDI. An existing scheduled saved search can be edited via the same application.
An SDI server needs to be created first, based on sdi.exe
. Whenever the program is run, it executes the search statement stored in the scheduled saved search if its frequency settings allow it to, then it will update the Last run field in the schedule and will print or email the search result. An XSLT style sheet (or adapl) set up in the scheduled saved search will determine which data ends up in the output and how it will look: Axiell Collections itself is not involved in the emailing or printing process.
Although you can run sdi.exe
manually from the server via a batch file or (DOS) command line, it is much more convenient to use the Windows Task Scheduler on that server to regularly run the program via a batch file automatically so you do not have to bother any more.
Note: sdi.exe
does not run continuously in the background: after it has processed the relevant scheduled saved searches, it closes automatically.
Often, sdi.exe
will be set up to use a local network SMTP server and by default it does not support TLS (Transport Layer Security) for encrypted emailing. However, when sdi.exe
is combined with Axiell admailer.exe
, it is possible to use smtp.office365.com
as the (TLS encrypted) SMTP server for SDI, although this requires a Microsoft office365 account: for smtp.office365.com
mail boxes to be available to send email through SMTP, the user (represented by a “from” email address) sending the emails requires a subscription to either Microsoft Exchange Online Kiosk, Exchange Online (Plan 1) or Exchange Online (Plan 2) (which are not included in any Axiell product licence). Sending email through SMTP has the advantage that you can send multiple emails at once and specify any “from” email address as long as you have the accompanying office365 account password. A disadvantage of SMTP is that an email can only have one attachment: if an adapl tries to send an email with multiple attachments anyway, an error 332 will be generated.
Apart from the Exchange Online subscription, you will need some files to set up the SDI server. Most of these files are already present in the \executables
sub folder of your Adlib software folder if you have Adlib for Windows as well as a local Axiell Collections installation, otherwise the Axiell Helpdesk can provide the missing files: you must create sdi.bat
, adlibweb.xml
and adlibsmarthost.xml
yourself. Place all files together in a new sub folder of your Collections software folder, \SDI server
for example:
adlib.lic
– required licence fileadlibimg.dll
– only required if images must be processedadliblic.dll
– required for licence file processingadlibsmarthost.xml
– required settings file for office365 emailingadlibu.dll
– required general function libraryadlibweb.xml
– required settings file forsdi.exe
admailer.exe
– required executable for office365 emailingevalsmtp.dll
– required SMTP function librarysdi.bat
– required to runsdi.exe
via the Windows Task schedulersdi.exe
– required executable (7.6.19081.2 or higher) for general SDI functionality<mySDIstylesheet>.xslt
– any style sheet, required to lay out HTML emails
You can create the adlibweb.xml
file in a text editor of choice, but the adlibsmarthost.xml
file MUST be created via Axiell Designer because your office365 password needs to be encrypted.
Note: Use Designer 7.6.19081.1 or higher if the password is longer than 16 characters: older versions only support shorter passwords.
Example of adlibweb.xml
:
<?xml version="1.0" encoding="UTF-8" ?>
<webConfiguration>
<globalConfiguration>
<databasepath>C:\Adlib\Model4.5.2\data</databasepath>
<xmltype>grouped</xmltype>
<sdifrom>myemail@ourmuseum.com</sdifrom>
<dm>dm</dm>
<di>di</di>
</globalConfiguration>
<databaseConfiguration database="collect">
<database>collect>intern</database>
</databaseConfiguration>
</webConfiguration>
Setting |
Meaning |
---|---|
databasepath |
the path to the |
xmltype |
must be |
sdifrom |
email address from which the mailing must be sent. |
dm |
the tag or field in which the modification date of a record is saved. This has to be an indexed field. The |
di |
the tag or field in which the entry date of a record is saved. This has to be an indexed field. The |
database |
a specified database alias to be able to process scheduled saved searches per database. The database name and optional dataset must be separated by |
Example of the adlibsmarthost.xml
file created via Designer:
<?xml version="1.0" encoding="utf-8"?>
<adlibSmartHost xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<server>smtp.office365.com</server>
<userName>myemail@ourmuseum.com</userName>
<password>7894jkfe523jklfds89dd89s0</password>
</adlibSmartHost>
Setting |
Meaning |
---|---|
server |
always |
userName |
email address from which the mailing must be sent. This email address must match the |
password |
the hashed password (hashed by Axiell Designer) for the office365 account identified by the email address provided in |
On the SDI server, MSXML4 or higher also needs to have been installed. Version 4.0 SP2 of the MSXML parser (or a newer version) from Microsoft should be installed. You can check this in your Windows registry (start regedit from the Windows search box). Search for the text MSXML
. If the parser is not present, you can download this software from the Microsoft website (http://www.microsoft.com
); from their homepage, search for MSXML4
or MSXML 6.0
. Click a link similar to Download Microsoft XML Core Services (MSXML) 4.0 Service Pack 1. Then choose the msxml.msi
file and store it on your hard disk. Now install the software by double-clicking the file.
You must create an XSLT style sheet or an adapl to specify which fields from the search result of an executed scheduled saved search should end up in the email or printed output and to apply a nice layout to it.
For information about how to write an SDI layout adapl (if you do not want to use an XSLT style sheet), please see chapter 2.2 in the Reference guide SDI and email from within Adlib (the adapl part applies to SDI in combination with Axiell Collections too).
To create an XSLT style sheet, you should know the following. Under the hood of Axiell Collections, all data is processed as XML. With an XSLT style sheet that XML can be transformed to HTML, while HTML can be displayed in (SDI) emails.
So you have to create an XSLT style sheet to transform XML data of records from a certain database into HTML. Assume this is grouped XML, although grouped XML generated by Axiell Collections may differ slightly from that generated by Adlib for Windows (so pre-existing style sheets may need adjusting for use in Collections). You can use the sample style sheet below for museum objects to start with. You are of course free to adjust this style sheet to your requirements. Place the style sheet in the previously created SDI server folder and give it a sensible name.
As an illustration, the sample code also contains a template for the reproduction.reference field, which makes sure that a link to the images belonging to a record are included in the output, so that those images become visible in the printout or emails as well. This template assumes that the relevant field only contains a file name (without path) and that the images folder in this example can be found on \\server1\Axiell\images\
. You should change this UNC path to the UNC path of the folder that actually contains your images. The images themselves are not included in the email (an email could easily become too large) only a link to it. This means that this template has limited applicability for emails with images, namely only for emails sent within your local network in which everyone has access to this UNC path. SDI emails opened on computers outside the network, would not show any images.
If you have an Axiell Web API image server, you could use the wwwopac calls (URLs) for retrieving images to include links to images in emails that should also work outside the local network. You can also leave out the processing of images entirely of course, by simply not including a template for it in the style sheet.
Further note that if SDI fails to send any emails, one possibility is that something is wrong with your XSLT style sheet. Emails can only be sent when your style sheet is 100% syntactically correct.
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
<html>
|
||||||||||||||||||||||
<head>
|
||||||||||||||||||||||
<STYLE type="text/css">
|
||||||||||||||||||||||
p {font-family:"verdana"; font-size: 10pt}
|
||||||||||||||||||||||
</STYLE>
|
||||||||||||||||||||||
</head>
|
||||||||||||||||||||||
<body>
|
||||||||||||||||||||||
<xsl:apply-templates select="recordList"/>
|
||||||||||||||||||||||
</body>
|
||||||||||||||||||||||
</html>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="recordList">
|
||||||||||||||||||||||
<xsl:apply-templates select="record"/>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="record">
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<xsl:apply-templates select="object_number"/>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
<xsl:if test="count(Object_name) != 0">
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<table border="1" cellpadding="10" style="border-collapse: collapse" width="100%">
|
||||||||||||||||||||||
<tr>
|
||||||||||||||||||||||
<td width="100%" bgcolor="#EAEAFF">
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<xsl:apply-templates select="Object_name"/>
|
||||||||||||||||||||||
<xsl:apply-templates select="other_name"/>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<xsl:apply-templates select="Description"/>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
<xsl:if test="Production/creator != ''">
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<xsl:apply-templates select="Production"/>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
</td>
|
||||||||||||||||||||||
</tr>
|
||||||||||||||||||||||
</table>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<table border="1" cellpadding="10" style="border-collapse: collapse" width="100%">
|
||||||||||||||||||||||
<tr>
|
||||||||||||||||||||||
<td width="100%" bgcolor="#F9F9F9">
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<xsl:if test="physical_description != '' or Dimension/dimension.value != ''">
|
||||||||||||||||||||||
<xsl:text>Physical description:</xsl:text>
|
||||||||||||||||||||||
<br/><br/>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<xsl:apply-templates select="physical_description"/>
|
||||||||||||||||||||||
<xsl:if test="Material/material != '' or Dimension/dimension.value != ''">
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<xsl:if test="Material/material != ''">
|
||||||||||||||||||||||
<xsl:apply-templates select="Material"/>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<xsl:if test="Dimension/dimension.value != ''">
|
||||||||||||||||||||||
<xsl:if test="Material/material != ''">
|
||||||||||||||||||||||
<xsl:text>, </xsl:text>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<xsl:apply-templates select="Dimension"/>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<xsl:text>.</xsl:text>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<xsl:if test="Reproduction/reproduction.reference != ''">
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<xsl:apply-templates select="Reproduction/reproduction.reference"/>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
</td>
|
||||||||||||||||||||||
</tr>
|
||||||||||||||||||||||
</table>
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="reproduction.reference">
|
||||||||||||||||||||||
<p>
|
||||||||||||||||||||||
<img src="\\server1\Axiell\images\{normalize-space(.)}" />
|
||||||||||||||||||||||
</p>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="object_number">
|
||||||||||||||||||||||
<xsl:text>Object: </xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="."/>
|
||||||||||||||||||||||
<xsl:apply-templates select="../object_category"/>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="object_category">
|
||||||||||||||||||||||
<xsl:text> (</xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="normalize-space(.)"/>
|
||||||||||||||||||||||
<xsl:text>)</xsl:text>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="Object_name">
|
||||||||||||||||||||||
<strong>
|
||||||||||||||||||||||
<xsl:if test="position() > 1">
|
||||||||||||||||||||||
<xsl:text> & </xsl:text>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<xsl:value-of select="object_name"/>
|
||||||||||||||||||||||
</strong>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="other_name">
|
||||||||||||||||||||||
<xsl:text>, other name: </xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="."/>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="physical_description">
|
||||||||||||||||||||||
<xsl:value-of select="."/>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="Description">
|
||||||||||||||||||||||
<xsl:if test="description != ''">
|
||||||||||||||||||||||
<xsl:value-of select="description"/>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="Material">
|
||||||||||||||||||||||
<xsl:choose>
|
||||||||||||||||||||||
<xsl:when test="position() = 1">
|
||||||||||||||||||||||
<xsl:text>Made of </xsl:text>
|
||||||||||||||||||||||
</xsl:when>
|
||||||||||||||||||||||
<xsl:otherwise>
|
||||||||||||||||||||||
<xsl:text> & </xsl:text>
|
||||||||||||||||||||||
</xsl:otherwise>
|
||||||||||||||||||||||
</xsl:choose>
|
||||||||||||||||||||||
<xsl:value-of select="material"/>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="Dimension">
|
||||||||||||||||||||||
<xsl:if test="position() > 1">
|
||||||||||||||||||||||
<xsl:text>, </xsl:text>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<xsl:value-of select="dimension.type"/>
|
||||||||||||||||||||||
<xsl:if test="dimension.part != ''">
|
||||||||||||||||||||||
<xsl:text> (</xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="dimension.part"/>
|
||||||||||||||||||||||
<xsl:text>)</xsl:text>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
<xsl:text> </xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="dimension.value"/>
|
||||||||||||||||||||||
<xsl:text> </xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="dimension.unit"/>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="Production">
|
||||||||||||||||||||||
<xsl:variable name="pos" select="position()"/>
|
||||||||||||||||||||||
<xsl:choose>
|
||||||||||||||||||||||
<xsl:when test="$pos = 1">
|
||||||||||||||||||||||
<xsl:text>Created by </xsl:text>
|
||||||||||||||||||||||
</xsl:when>
|
||||||||||||||||||||||
<xsl:otherwise>
|
||||||||||||||||||||||
<xsl:text> & </xsl:text>
|
||||||||||||||||||||||
</xsl:otherwise>
|
||||||||||||||||||||||
</xsl:choose>
|
||||||||||||||||||||||
<xsl:apply-templates select="creator"/>
|
||||||||||||||||||||||
<xsl:if test="position() = last()">
|
||||||||||||||||||||||
<xsl:apply-templates select="../Production_date[1]"/>
|
||||||||||||||||||||||
</xsl:if>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="Production_date">
|
||||||||||||||||||||||
<xsl:text> </xsl:text>
|
||||||||||||||||||||||
<xsl:choose>
|
||||||||||||||||||||||
<xsl:when test="(dating.date.start !=dating.date.end) and (dating.date.end != '')">
|
||||||||||||||||||||||
<xsl:text>between </xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="dating.date.start"/>
|
||||||||||||||||||||||
<xsl:text> and </xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="dating.date.end"/>
|
||||||||||||||||||||||
<xsl:text>.</xsl:text>
|
||||||||||||||||||||||
</xsl:when>
|
||||||||||||||||||||||
<xsl:otherwise>
|
||||||||||||||||||||||
<xsl:text> in </xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="dating.date.start"/>
|
||||||||||||||||||||||
<xsl:text>.</xsl:text>
|
||||||||||||||||||||||
</xsl:otherwise>
|
||||||||||||||||||||||
</xsl:choose>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
<xsl:template match="creator">
|
||||||||||||||||||||||
<xsl:choose>
|
||||||||||||||||||||||
<xsl:when test="contains(., ',')">
|
||||||||||||||||||||||
<xsl:value-of select="substring-after(. , ',')"/>
|
||||||||||||||||||||||
<xsl:text> </xsl:text>
|
||||||||||||||||||||||
<xsl:value-of select="substring-before(. , ',')"/>
|
||||||||||||||||||||||
</xsl:when>
|
||||||||||||||||||||||
<xsl:otherwise>
|
||||||||||||||||||||||
<xsl:value-of select="."/>
|
||||||||||||||||||||||
</xsl:otherwise>
|
||||||||||||||||||||||
</xsl:choose>
|
||||||||||||||||||||||
</xsl:template>
|
||||||||||||||||||||||
</xsl:stylesheet>
|
You can create a batch file to run sdi.exe
with parameters. Simply create a text file with the .bat
extension, name it sdi.bat
for instance, place it next to sdi.exe
and put a command line like the following in there:
sdi "SDICMD=run" > sdilog.xml
This will execute all applicable SDI profiles after which an XML log file (here sdilog.xml
) will be created in the same folder, containing the result of the action and any errors.
In the Windows Task Scheduler you must make some settings if you want your sdi.bat
batch file running sdi.exe
to be executed automatically on a regular basis.
In your Axiell Collections application you set the frequency with which the scheduled saved search ideally should be executed. Remember however that the frequency can be limited by the Windows Task Scheduler settings for the SDI program on the server. If the system administrator has set the program to run only once a day, users will not be able to receive a new SDI update more often than that.
Of course it depends on the version of Windows in exactly what way you can make these settings. See Microsoft’s documentation for more information about that.
On Windows Server 2012 R2 for example, this can be done as follows:
- Search for ‘schedule tasks’ to open the Task Scheduler.
- Click the Create basic task option in the right window pane.
- A wizard will guide you through the settings for a regular execution of your batch file.
To test your SDI server before you have the Task Scheduler execute the SDI profiles on a regular basis, you can double-click the saved batch file in Windows Explorer to execute it this once.
Possible errors (as logged in sdilog.xml
) causing emailing to fail, include:
<pointerfile stat="332" info="Failed to send email with admailer.exe, the process returned error code 332, with output: Admailer 1.0.0, TLS capable email client for use with Adlib for Windows.
Use option -h for command line help.
Sending email...
Failed to send message: dial tcp 43.104.151.31:587: connectex: No connection could be made because the target machine actively refused it.
" location="pf000009.ptr">A No connection error like this could indicate that your local network does not accept SMTP traffic from the ip address from which emails are attempted to be sent. Your system administrator should be able to help.
<pointerfile stat="332" info="Failed to send email with admailer.exe, the process returned error code 332, with output: Admailer 1.0.0, TLS capable email client for use with Adlib for Windows.
Use option -h for command line help.
Sending email...
Failed to send message: 535 5.7.3 Authentication unsuccessful [CB89R05fd2348.eurprd06.prod.outlook.com]
" location="pf000009.ptr">An Authentication unsuccessful error like this is usually caused by an incorrect user name / email address and/or password. You need an email address and accompanying, hashed password (encrypted by Axiell Designer) for a valid office365 login.
<pointerfile stat="333" info="applying XSLT SDIrecentAcquisitions.xslt gives errors: ',=', check XSLT code please" location="pf000009.ptr">
An error like this indicates a programming error in the XSLT style sheet. No emails will have been sent.
To test the SDI server separately from the SDI client-side, you could use a URL or a batch file on the server containing a command line to execute sdi.exe
with certain parameters. Please see chapter 2.4 in the Reference guide SDI and email from within Adlib for more information about that.
admailer.exe
can also be used for testing the connection to smtp.office365.com
and to see if an email can be sent at all, without using any of the settings in the XML configuration files. You can start it from the (DOS) command line with the -h
parameter to get a list of all possible parameters.
For example, to check if a connection can be made at all:
admailer -server smtp.office365.com -check
or to actually send an email with just a subject, in which case you must use the real, unhashed office365 password(!) because we are circumventing sdi.exe
now:
admailer -server smtp.office365.com -from erik@ourmuseum.com -to john@ourmuseum.com -title testing -username erik@ourmuseum.com -password myoffice365pw*0